package com.sc.nft.entity.minimall;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;

import com.sc.nft.enums.MallWithdrawType;
import com.sc.nft.enums.WithdrawalsStatusEnum;
import com.sc.nft.enums.WithdrawalsTradeStatusEnum;
import com.sc.nft.sup.SuperEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

/**
 * <p>
 * 用户提现记录表
 * </p>
 *
 * @author author
 * @since 2024-05-20
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("sc_mall_user_withdrawals_record")
@ApiModel(value="ScMallUserWithdrawalsRecord对象", description="用户提现记录表")
public class MallUserWithdrawalsRecord extends SuperEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "小程序用户Id")
    private Long miniUserId;

    @ApiModelProperty(value = "提现类型: 1 - 微信提现")
    private MallWithdrawType withdrawType;

    @ApiModelProperty(value = "钱包明细ID")
    private Long walletDetailId;

    @ApiModelProperty(value = "真实姓名")
    private String actualName;

    @ApiModelProperty(value = "用户手机号")
    private String userTel;

    @ApiModelProperty(value = "提现金额")
    private BigDecimal amount;

    @ApiModelProperty(value = "提现手续费")
    private BigDecimal charge;

    @ApiModelProperty(value = "实际金额")
    private BigDecimal realAmount;

    @ApiModelProperty(value = "商户订单号")
    private String outTradeNo;

    @ApiModelProperty(value = "商家批次单号 审核通过后调用转账时生成")
    private String outBatchNo;

    @ApiModelProperty(value = "微信批次单号说明：微信商家转账系统返回的唯一标识")
    private String wxBatchId;

    @ApiModelProperty(value = "提现成功时间")
    private Date withdrawalsSuccessTime;

    @ApiModelProperty(value = "审核时间")
    private Date auditTime;

    @ApiModelProperty(value = "审核人ID")
    private Long auditAdminUserId;

    @ApiModelProperty(value = "提现状态:0-待提现;1-提现中;2-已提现;3-拒绝提现")
    private WithdrawalsStatusEnum withdrawalsStatus;

    @ApiModelProperty(value = "订单状态: 0-待提现;1-提现成功;2-提现失败 该订单状态是指微信商家转账的状态，不是提现状态")
    private WithdrawalsTradeStatusEnum tradeStatus;

    @ApiModelProperty(value = "备注")
    private String note;

}
